package mathematics.square;

import java.math.BigDecimal;

/**
 * 特殊工具类
 * @author 杜伟毅
 * @version 1.0
 * @since 2024/11/07
 */
public class Util {
    /**
     * 判断小数是否大于0，从而判断该面积是否为正方形
     *
     * @param value double 面积
     * @return false为正方形 , true为长方形
     * @author 杜伟毅
     * @since 2024/11/7 0007 10:19
     */
    public static boolean isDecimalGreaterThanZero(double value) {
        value = value / 2;
        // 使用 BigDecimal 进行精确计算
        BigDecimal bigDecimal = new BigDecimal(Double.toString(value));
        // 获取整数部分
        BigDecimal integerPart = bigDecimal.setScale(0, BigDecimal.ROUND_DOWN);
        // 计算小数部分
        BigDecimal decimalPart = bigDecimal.subtract(integerPart);
        if (decimalPart.compareTo(BigDecimal.ZERO) > 0) {
            return true;
        }
        return false;
    }



    /**
     * 根据面积计算长方形的长与宽( Integer)
     *
     * @param area Integer 面积
     * @return 对函数返回值的描述
     * @author 杜伟毅
     * @since 2024/11/6 0006 0:13
     */
    public String rectangleAreaToSide(Integer area) {
        for (int length = 1; length <= Math.sqrt(area); length++) {
            if (area % length == 0) {
                int width = area / length;
                if (length != 1 && width != 1) {
                    return "长为：" + length + " 宽为：" + width;
                }
            }
        }
        return null;
    }
}
